import axios from 'axios';

class ApiService {
  constructor() {
    // 创建 Axios 实例并指定公共请求前缀
    this.api = axios.create({
      baseURL: 'http://172.16.1.117:9040/agriculture/dataScreen',
      timeout: 5000,
    });
  }

  // 请求拦截器
  setupInterceptors() {
    this.api.interceptors.request.use(
      (config) => {
        // 可以在这里添加请求头信息、认证令牌等
        return config;
      },
      (error) => {
        return Promise.reject(error);
      }
    );

    this.api.interceptors.response.use(
      (response) => {
        return response.data;
      },
      (error) => {
        if (error.response) {
          // 处理服务器返回的错误状态码
          console.error(`服务器错误：状态码 ${error.response.status}`);
        } else if (error.request) {
          // 处理请求未发送的情况
          console.error('请求未发送成功');
        } else {
          // 处理其他错误情况
          console.error('发生了未知错误', error.message);
        }
        return Promise.reject(error);
      }
    );
  }

  // GET 请求方法
  get(url, params = {}) {
    return this.api.get(url, { params });
  }

  // POST 请求方法
  post(url, data = {}, params = {}) {
    return this.api.post(url, data, { params });
  }

  // PUT 请求方法
  put(url, data = {}, params = {}) {
    return this.api.put(url, data, { params });
  }

  // DELETE 请求方法
  delete(url, params = {}) {
    return this.api.delete(url, { params });
  }
}

const apiService = new ApiService();
apiService.setupInterceptors();

export default apiService;